package com.mdd.admin.service.coupon;

import com.mdd.admin.validate.common.PageParam;
import com.mdd.admin.validate.coupon.CouponShareValidate;
import com.mdd.admin.validate.coupon.CouponValidate;
import com.mdd.admin.vo.coupon.CouponDetailVo;
import com.mdd.admin.vo.coupon.CouponListCountVo;
import com.mdd.admin.vo.coupon.CouponListVo;
import com.mdd.admin.vo.coupon.CouponShareVo;
import com.mdd.common.core.PageResult;
import com.mdd.common.entity.coupon.CouponShare;

import java.util.List;
import java.util.Map;

public interface ICouponService {
    /**
     * @param params 搜索参数
     * @return Object
     */
    PageResult<CouponListVo> list(PageParam pageParam, Map<String, String> params);

    CouponListCountVo countList();

    CouponDetailVo detail(Integer id);

    /**
     * @param couponValidate 优惠券参数
     */
    void create(CouponValidate couponValidate);

    /**
     * @param couponValidate 优惠券参数
     */
    void edit(CouponValidate couponValidate);

    /**
     * @param id 优惠券id
     */
    void delete(Integer id);

    /**
     * @param id 优惠券id
     */
    void start(Integer id);

    /**
     * @param id 优惠券id
     */
    void stop(Integer id);

    Map<String,String> getCouponImage(Integer id);


    void share(Integer id, List<CouponShareValidate> userIds);

    List<CouponShareVo> shareList(Map<String, String> params);
}
